package com.tiny.tinyweb.core.ldap.access;

import java.util.List;

import com.tiny.tinyweb.core.ldap.entry.Person;

public interface PersonAccess {
    // <editor-fold defaultstate="collapsed" desc="select">
    public Person find(final String cn, final List<String> ous);

    public Person find(Person entry);

    public List<Person> findPlural(final String base);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="insert">
    public void insert(final Person entry);

    public void insertPlural(final List<Person> entries);

    public void deleteInsert(final Person entry);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="update">
    public void update(final Person entry, final boolean ignoreNull);

    public void update(final Person entry);

    public void updatePlural(final List<Person> entries, final boolean ignoreNull);

    public void updatePlural(final List<Person> entries);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="delete">
    public void delete(final Person entry);

    public void deletePlural(final List<Person> entries);

    public void deletePlural(final String base);
    // </editor-fold>

    // <editor-fold defaultstate="collapsed" desc="save">
    public boolean exists(final Person entry);

    public void save(final Person entry);

    public void savePlural(List<Person> entries);
    // </editor-fold>
}
